package com.dingteam.question.common.validation.module;

import com.dingteam.model.Result;
import com.dingteam.question.common.contant.QuestionCommonConstant;
import com.dingteam.question.common.dto.QuestionPaperVerifyDTO;
import com.dingteam.question.common.dto.QuestionResultVerifyDTO;
import com.dingteam.question.common.enums.ModuleEnum;

/**
 * 题目校验规则
 * @author Jamin
 * @date 2019/08/14
 */
public interface ModuleValidator extends QuestionCommonConstant {

	/**
	 * 获取当前支持控件类型
	 * @return 返回控件类型
	 */
	ModuleEnum getModule();

	/**
	 * 当前支持的组件
	 * @param module 组件的类型枚举
	 * @return true 支持 false 不支持
	 */
	boolean supportModule(ModuleEnum module);

	/**
	 * 发布投票或者问卷时的校验
	 * @param itemDTO 项的数据
	 * @return
	 */
	Result<String> createValid(QuestionPaperVerifyDTO.QuestionItemDTO itemDTO);

	/**
	 * 提交投票或者问卷的校验
	 * @param item 提交的数据
	 * @return
	 */
	Result<String> submitValid(QuestionResultVerifyDTO.ItemResultDTO item);
}
